﻿using System;
using DapperExtensions.Mapper;
using Newtonsoft.Json;
using ZilLion.Service.Core.Domain.EntityBase.JsonConverter;

namespace ZL.CRM.CommonEntity.AccYwDetail
{
    public class Cfv4Accopr3:OprYwCommon
    {
        /// <summary>
        ///  操作事件（申请操作无预操作）：
        ///休眠申请：1-余额异议 2-销户 3-卡丢失 4-临时冻结
        ///休眠修复：5-余额调整 6-销户 7-换卡（同意换卡） 8-取消休眠 9-门店换卡
        /// </summary>
        public short Oprtype { get; set; }


        /// <summary>
        /// 余额调整:1-调增 2-调减 
        /// </summary>
        public short Opryuetztype { get; set; }

        /// <summary>
        /// 积分调整:1-调增 2-调减 
        /// </summary>
        public short Oprjftztype { get; set; }

        /// <summary>
        ///  销户方式：1-正常销户 2-余额合并
        /// </summary>
        public short Oprcloseway { get; set; }

      
        /// <summary>
        ///  休眠时/调整后/旧账户合并前/销户时：现金钱包（不含红包）
        /// </summary>
        public decimal Oprxjje { get; set; }

        /// <summary>
        ///  休眠时/调整后/旧账户合并前/销户时：增值钱包（不含红包）
        /// </summary>
        public decimal Oprzzje { get; set; }

        /// <summary>
        ///  调整后积分总额
        /// </summary>
        public int Oprjf { get; set; }


        /// <summary>
        ///  积分调整sno
        /// </summary>
        public string Jfoprsno { get; set; }


        /// <summary>
        ///  账号（余额合并后）
        /// </summary>
        public long Oprhbhaccid { get; set; }

        /// <summary>
        ///  凭证号（余额合并后）
        /// </summary>
        public string Oprhbhcardno { get; set; }

        /// <summary>
        ///  凭证类型（余额合并后）
        /// </summary>
        public short Oprhbhctype { get; set; }

        /// <summary>
        /// 卡种id
        /// </summary>
        public int Oprcgsid { get; set; }

        /// <summary>
        /// 卡种id（余额合并后）
        /// </summary>
        public int Oprhbcgsid { get; set; }

        /// <summary>
        ///  新账户合并后：现金钱包（不含红包）
        /// </summary>
        public decimal Oprhbxjje { get; set; }

        /// <summary>
        ///  新账户合并后：增值钱包（不含红包）
        /// </summary>
        public decimal Oprhbzzje { get; set; }
    }

    public class Cfv4Accopr3Mapper : ClassMapper<Cfv4Accopr3>
    {
        public Cfv4Accopr3Mapper()
        {
            Table("#Cfv4Accopr3");
            Map(f => f.Oprtime).Column("Oprtime");
            Map(f => f.Oprsno).Column("Oprsno");
            Map(f => f.Jfoprsno).Column("Jfoprsno");
            Map(f => f.Opraccid).Column("Opraccid");
            Map(f => f.Oprcardno).Column("Oprcardno");
            Map(f => f.Oprctype).Column("Oprctype");
            Map(f => f.Opryuetztype).Column("Opryuetztype");
            Map(f => f.Oprjftztype).Column("Oprjftztype");
            Map(f => f.Oprtype).Column("Oprtype");
            Map(f => f.Oprcloseway).Column("Oprcloseway");
            Map(f => f.Oprbrid).Column("Oprbrid");
            Map(f => f.Oprbrname).Column("Oprbrname");
            Map(f => f.Oprid).Column("Oprid");
            Map(f => f.Oprname).Column("Oprname");
            Map(f => f.Oprywsno).Column("Oprywsno");
            Map(f => f.Oprywdate).Column("Oprywdate");
            Map(f => f.Oprxjje).Column("Oprxjje");
            Map(f => f.Oprzzje).Column("Oprzzje");
            Map(f => f.Oprhbxjje).Column("Oprhbxjje");
            Map(f => f.Oprhbzzje).Column("Oprhbzzje");
            Map(f => f.Oprjf).Column("Oprjf");
            Map(f => f.Oprywwindow).Column("Oprywwindow");
            Map(f => f.Oprywbno).Column("Oprywbno");
            Map(f => f.Oprsummary).Column("Oprsummary");
            Map(f => f.Appidopenid).Column("Appidopenid");
            Map(f => f.Oprhbhaccid).Column("Oprhbhaccid");
            Map(f => f.Oprhbhcardno).Column("Oprhbhcardno");
            Map(f => f.Oprhbhctype).Column("Oprhbhctype");
            Map(f => f.Oprcgsid).Column("Oprcgsid");
            Map(f => f.Oprhbcgsid).Column("Oprhbcgsid");
        }
    }
}
